//
//  main.cpp
//  AVLtree
//
//  Created by 卜绎皓 on 2022/11/16.
//

#include"AVLTree.hpp"
 
void TestAVLTree()
{
    //int a[] = { 1, 3, 5, 7, 6 };
    //int a[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15 };
    int a[] = { 4, 2, 6, 1, 3, 5, 15, 7, 16, 14 };//三个数组测试平衡二叉树是否正确
    AVLTree<int, int> t;
    for (auto e : a)
    {
        t.Insert(make_pair(e, e));//依次插入元素
    }
    t.Inorder();//用中序遍历验证二叉树是否正确
    cout << t.IsAVLTree() << endl;//检查是否为平衡二叉搜索树
    t[3] *= 10;
    t[4] *= 10;
    t[5] *= 10;
    //利用opertor[]如果key值存在则修改这个位置的value值；如果不存在则插入到该树中，则以v类型的默认缺省值赋值给value
    t.Inorder();
 
    AVLTree<string, string> dict;
    dict.Insert(make_pair("sort", " "));
    dict.Insert(make_pair("left", " "));
    dict.Inorder();
 
    dict["left"] = "左边，留下";
    dict["string"] = " ";//利用operator[]对值进行修改或者插入新元素
    dict.Inorder();
}
int main()
{
    TestAVLTree();
    return 0;
}
